/**
 * 项目名称: Topic_328.cpp
 * 项目路径: study/DataStructure/LinkedList/LeetCode/链表/中等
 * 编辑时间: 2024年07月08日16时22分16秒
 * 用   户: 轻尘
 */

#include <bits/stdc++.h>

using namespace std;

struct ListNode {
    int val;
    ListNode *next;

    ListNode() : val(0), next(nullptr) {}

    ListNode(int x) : val(x), next(nullptr) {}

    ListNode(int x, ListNode *next) : val(x), next(next) {}
};

class Solution {
public:
    ListNode *oddEvenList(ListNode *head) {
        if (!head || !head->next)return head;

        // ListNode * p = head;
        ListNode *even = head->next;
        ListNode *pq = head;
        ListNode *evenq = even;
        while (evenq && evenq->next) {
            pq->next = evenq->next;
            pq = pq->next;
            evenq->next = pq->next;
            evenq = evenq->next;
        }
        pq->next = even;
        return head;
    }
};

int main() {

    return 0;
}
